package com.wwh.Thread;
/*
 * Thread常用的方法：
 * 	1.start();代表一个线程的启动--->调用实现Thread的类的run()方法
 * 	2.run(){}线程所要执行的功能要在此方法中写出
 * 	3.currentThread(); Thread的静态方法,代表调用当前线程
 * 	4.getName() 获取此线程的名字
 * 	5.setName() 设置此线程起名字
 * 	6.yield() 让出CPU的控制权,但还会与其他线程争抢控制权,有可能是别的线程,也有可能是自身
 *  7.join() 当A线程中调用B线程的join(),表示当前A线程停止执行,直到B线程执行完之后,A线程才接着
 *  	      执行join()之后的代码
 *  8.isAlive() 当前线程是否存活  返回一个boolean
 *  9.sleep(long mills) 是当前线程睡眠mills毫秒
 *  
 *  线程通信 :  wait()  notify()  notifyAll()
 *  
 *  设置线程的优先级
 *  setPriority(int newPriority); 设置当前线程优先级
 *  getPriority(); 获取当前线程优先级
 */


class ThreadTest1 extends Thread{
	
	public void run(){
		for(int i = 1;i <= 100;i++){
//			try {
//				Thread.currentThread().sleep(1000);
//			} catch (InterruptedException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
			System.out.println(Thread.currentThread().getName()+"-->"+ 
					Thread.currentThread().getPriority() +"-->" + +i);
		}
	}
}
public class SubThread2 {
	public static void main(String[] args) {
		
		ThreadTest1 t1 = new ThreadTest1();
		t1.setName("子线程");
		t1.setPriority(Thread.MAX_PRIORITY);
		t1.start();
		
		Thread.currentThread().setName("-------主线程");
		Thread.currentThread().setPriority(Thread.NORM_PRIORITY);
		for(int i = 1;i <= 100;i++){
			System.out.println(Thread.currentThread().getName()+"-->"+ 
					Thread.currentThread().getPriority() +"-->" + +i);
//			if(i % 10 == 0){
//				Thread.currentThread().yield();
//			}
			
//			if(i == 10){
//				try {
//					t1.join();
//				} catch (InterruptedException e) {
//					
//					e.printStackTrace();
//				}
//			}
		}
		System.out.println(t1.isAlive());
		System.out.println(Thread.currentThread().isAlive());
	}
}
